#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>
#include<assert.h>
#include<string.h>
#include<time.h>
typedef int HeapDataType;
typedef struct Heap
{
	HeapDataType* a;
	int size;
	int capacity;

}HP;
//初始化堆
void HeapInit(HP* php);
//堆的插入
void HeapPush(HP* php, HeapDataType x);
//堆的打印
void HeapPrint(HP* php);
//交换函数
void Swap(HeapDataType* x1, HeapDataType* x2);
//向上调整函数
void AdjustUp(HeapDataType* a, int child);
//向下调整函数
void AdjustDown(HeapDataType* a, int n, int parent);
//堆的销毁
void HeapDestroy(HP* php);
//堆的删除（删除根节点）
void HeapPop(HP* php);
//取堆顶数据
HeapDataType HeapTop(HP* php);
//判空
bool HeapEmpty(HP* php);
//堆的数据个数
int HeapSize(HP* php);



